﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Gwn.Library.MvpVm.Interfaces
{
    /// <summary>
    /// 
    /// </summary>
    public interface IPresenter
    {
        /// <summary>
        /// Initializes this instance.
        /// </summary>
        void Initialize();

        /// <summary>
        /// Gets or sets the view.
        /// </summary>
        /// <value>The view.</value>
        IView View { get; set; }

        /// <summary>
        /// Gets or sets the view model.
        /// </summary>
        /// <value>The view model.</value>
        IViewModel ViewModel { get; set; }

        /// <summary>
        /// Initializeds this instance.
        /// </summary>
        void Initialized();

        /// <summary>
        /// Views the activated.
        /// </summary>
        void ViewActivated();

        /// <summary>
        /// Gets or sets a value indicating whether this instance is active presenter.
        /// </summary>
        /// <value>
        /// 	<c>true</c> if this instance is active presenter; otherwise, <c>false</c>.
        /// </value>
        bool IsActivePresenter { get; set; }

    }
}
